package com.source.sys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.source.sys.entity.Popedom;
import com.source.sys.entity.Role;
import com.source.sys.entity.RolePopedom;
import com.baomidou.mybatisplus.extension.service.IService;
import com.source.sys.vo.PopedomVo;
import com.source.sys.vo.RolePopedomVo;
import com.source.sys.vo.RoleVo;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ZZF
 * @since 2021-02-08
 */
public interface RolePopedomService extends IService<RolePopedom> {
    /**
     * 添加单个角色权限
     * @param roleName
     * @param popedomId
     * @return
     */
    @Deprecated
    boolean addRolePopedom(String roleName, String popedomId);

    /**
     * 添加角色权限(添加多个权限)
     * @param roleName
     * @param popedomIdList
     * @return
     */
    boolean addRolePopedom(String roleName, List<String> popedomIdList);

    /**
     * 获取角色列表(分页)
     * @param currentPageNo
     * @param size
     * @return
     */
    Page<RoleVo> listRolePage(int currentPageNo, int size);

    /**
     * 根据id获取权限对象集合
     * @param roleId
     * @return
     */
    List<Popedom> listPopedomByRid(String roleId);

    /**
     * 根据角色id获取三级权限名字集合
     * @param roleId
     * @return
     */
    List<PopedomVo> listPopedomNameByRid(String roleId);

    /**
     * 通过角色id获取二级权限名字集合
     * @param roleId
     * @return
     */
    Set<Popedom> listLevel2PopedomByRid(String roleId);

    /**
     * 根据角色id回显角色权限信息
     * @param roleId
     * @return
     */
    RolePopedomVo showRolePopedomInfoByRoleId(String roleId);

    /**
     *
     * @param roleId
     * @param roleName
     * @param popedomIdList
     * @return
     */
    boolean updateRolePopedomByRoleId(String roleId,String roleName,List<String> popedomIdList);
}
